<?php
namespace Admin\Controller;
use Think\Controller;
class GoodsController extends CommonController {
    public function lists(){

        $count = $this->Model->relation(true)->count();// 查询满足要求的总记录数
        $Page = new \Think\Page($count,20);// 实例化分页类 传入总记录数和每页显示的记录数(25)
        $Page->setConfig('prev','上一页');
        $Page->setConfig('next','下一页');
        $Page->setConfig('first','首页');
        $Page->setConfig('last','最后一页');
        $show = $Page->show();// 分页显示输出// 进行分页数据查询 注意limit方法的参数要使用Page类的属性

        $list = $this->Model->relation(true)->limit($Page->firstRow.','.$Page->listRows)->select();
// print_r($list);die;
        $this->assign('list',$list);// 赋值数据集
        $this->assign('page',$show);// 赋值分页输出

        $this->display();

    }

    /**
     * 商品添加
     *
     * @return void
     * @author
     **/
    function add()
    {
        if(IS_POST){

            $_POST['goods_number'] = date('Ymd',time()).mt_rand(1111,9999);//商品编号
            $_POST['img'] = $_SESSION['img'];//把商品图片从session取出存进post

            unset($_POST['price']);//删除规格总价字段
            unset($_POST['number']);//删除库存字段
            unset($_POST['file']);//删除图片字段名不是img的字段

            $id = $this->Model->add(I('post.'));

            // echo $this->Model->getlastsql();die;

            if($id){

                //循环添加规格价格表数据
                foreach (s('spec_item') as $key => $v) {
                    $v['spec_rules'] = $id.$v['spec_rules'];
                    $v['goods_id'] = $id;
                    D('spec_price')->add($v);
                }

                $this->success('商品添加成功',U('Admin/goods/lists'),1);die;
            }else{
                $this->error('商品添加失败','',1);die;
            }
        }
        s('spec_item',null);//清除缓存

        $goods_type = D('goods_type')->select();// 查询所有商品类型
        $brand = D('brand')->select();// 查询品牌
        $cate = D('cate')->select();// 查询分类

        $this->assign('goods_type',$goods_type);
        $this->assign('brand',$brand);
        $this->assign('cate',$cate);
        // print_r($brand);die;

        $this->display();
    }


    /**
     * 删除
     *
     * @return void
     * @author
     **/
    function del()
    {
        $row = $this->Model->delete(I('get.id'));
        if($row){
            $this->success('删除成功',U('banner/lists'),2);die;
        }else{
            $this->error('删除失败','',2);die;
        }
    }


    /* excel导入 */
    function excel_put(){

        $upload = new \Think\Upload();// 实例化上传类
        $upload->maxSize   =     3145728 ;// 设置附件上传大小
        $upload->exts      =     array('xls','xlsx');// 设置附件上传类型
        $upload->savePath  =      'goods/'; // 设置附件上传目录
        // 上传文件
        $info   =   $upload->uploadOne($_FILES['file']);
        if(!$info) {die;
            // 上传错误提示错误信息
            $this->error($upload->getError());
        }else{

            $excel_path = './Uploads/'.$info['savepath'].$info['savename'];// 保存上传文件的路径
// echo $excel_path;die;
            // // 上传成功
            // $this->success('上传成功！');
        }

        // 引入excel第三方类库
        Vendor('PHPExcel.PHPExcel');

        $phpexcel = new \PHPExcel_Reader_Excel2007;

        // Excel文件加载方法
        $excel = $phpexcel->load($excel_path);

        // 获取excel文件内对应节点的数据
        $sheet = $excel->getSheet(0);

        $row = $sheet->getHighestrow();// 获取sheet节点的数据总行数

        $goods = array();
        for ($i=2; $i <= $row; $i++) {
            // 获取对应坐标单元格数据
            // 参数1：列数 从0开始
            // 参数1：行数 从1开始
            $goods['goods_number'] = (string)$sheet->getCellByColumnAndRow(0,$i)->getValue();
            $goods['goods_name'] = (string)$sheet->getCellByColumnAndRow(1,$i)->getValue();
            $goods['img'] = (string)$sheet->getCellByColumnAndRow(2,$i)->getValue();
            $goods['market_price'] = (string)$sheet->getCellByColumnAndRow(3,$i)->getValue();
            $goods['shop_price'] = (string)$sheet->getCellByColumnAndRow(4,$i)->getValue();

            // 根据中文查询对应id
            $b_name = (string)$sheet->getCellByColumnAndRow(5,$i)->getValue();
            $goods['brand_id'] = D('brand')->getByname($b_name)['id'];
            $c_name = (string)$sheet->getCellByColumnAndRow(6,$i)->getValue();
            $goods['cate_id'] = D('cate')->getByname($c_name)['id'];

            $this->Model->add($goods);
        }

    }


}